package com.kpmg.datalake.accountcheck.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kpmg.datalake.accountcheck.dto.AccountCheckSubConditionDTO;
import com.kpmg.datalake.accountcheck.model.AccountCheckSubDetailMapping;
import com.kpmg.datalake.accountcheck.model.AccountCheckSubMapping;
import com.kpmg.datalake.accountcheck.model.AccountCheckSubRow;


public interface AccountCheckSubMapper {

	List<AccountCheckSubDetailMapping> getSubMatchMapping(@Param("matchNameId") String matchNameId,@Param("queryParam") String queryParam);
	
	List<AccountCheckSubRow> queryCouseListByType(AccountCheckSubConditionDTO accountCheckSubConditionDTO);
	
	List<AccountCheckSubMapping> getSubMatchList(@Param("matchNameIds")List<String> matchNameId);

	List<AccountCheckSubRow> queryCouseByType(@Param("types")List<String> types,@Param("code")String code, @Param("value")String value,@Param("queryParam")String queryParam);
	
	int insertAccountSubHeader( AccountCheckSubMapping accountSubHeader);
    
	int insertBatchSubDetail(@Param("accountSubDetailList")List<AccountCheckSubDetailMapping> accountSubDetailList);
    
	AccountCheckSubMapping getSubMatchById(@Param("matchNameId")String matchNameId);
	
	int deleteRuleRow(AccountCheckSubMapping accountCheckSubMapping);
    
	int getSubMatchDetailById(@Param("matchNameId")String matchNameId);
	
	int deleteRuleDetailRow(@Param("matchNameId")String matchNameId);
	
	int updateSubHeader(AccountCheckSubMapping accountCheckSubMapping);

	int changeSubHeaderRow(@Param("matchNameIdOne")String matchNameIdOne,@Param("matchNameIdTwo")String matchNameIdTwo);
	
	List<AccountCheckSubDetailMapping> getMappingSubDetailListByType(@Param("sbjMappingType") String sbjMappingType);

	String selectPrioprity();
	
}
